Mobile devices come in thousands of hardware and software varieties having different operating systems, screen resolutions, input controls, etc. To accommodate the technological diversity in mobile devices, it is a goal of content and information service providers to provide users with universal support for all mobile devices without compromising appearance and functionality.
One way to provide universal support is porting. Porting is a process in which software or code is adapted to conform to a computing environment different from that for which the software was originally designed. For example, to display website code on a screen of a mobile device having a different browser than that for which the code was written, the website code may be altered to comport with the requirements and capabilities of the different browser. Multiple versions of a service solution must be generated with variations to match the specific hardware and software combinations that exist on the target mobile devices.
One of the main disadvantages of porting is that it is time consuming and costly. In one example, a porting process includes running and testing the same code individually on each mobile device, identifying problematic portions of the code, re-writing code to fix the problematic portions, and reiterating tests with the re-written code.
To improve efficiency, another porting process was designed. In this process, a first layer of software is generated having content/data universally intended for all mobile devices. Additional device-specific layers of software are also generated for running the first content layer on each specific mobile device. In this example, since the content and device-specific layers are generated separately, the content of the first layer may change without having to adapt the device-specific layers to conform therewith. Thus, a single device-specific layer may support a variety of content for each mobile device. Although improved, this process still yields detriments. For example, the device-specific layers are typically generated automatically based on device parameters stored in a database. Thus, no device-specific layer may exist for a device whose parameters are unknown or not stored in the database. Thus, an unknown mobile device cannot display the content layer.
In order to solve this problem, a generic or default device layer may be used to display the content layer. Since some devices support more advanced capabilities (e.g., using Adobe Flash® objects), while others only support the most basic content (e.g., using hypertext markup language (HTML)), a generic layer compatible for both devices must use the lowest common denominator of function. Thus, the devices capable of supporting advanced content may be forced to display the basic content operating below their potential function. The basic content typically has out-of-date features which reduce the quality of the user experience.
Currently, using as default the lowest common denominator of function is a common solution for providing universal service in the technologically diverse world of mobile devices. For example, online service providers use wireless application protocol (WAP) websites, which essentially are adaptations of their regular websites with reduced, cut-down versions, of content, features, and functionality. In order to take advantage of advanced capabilities, parallel versions of the service must be developed, checked and maintained, each taking into account the additional capabilities unsupported by inferior mediums.
A need exists to provide universal support for a wide variety of mobile devices without degrading the quality of service.